package com.ruoyi.lock.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.data.annotation.Transient;

import java.util.Date;

/**
 * 开门记录对象 a_openlock
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
@Data
public class AOpenlock extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 设备编号 */
    private String mac;

    /** 日志id */
    private String logId;


    /** 日志钥匙id */
    private String keyId;

    /** 租户id */
    private Long tenantId;


    /** 房间id */
    private Long homeId;

    /** 小区id - 通过房间关联获取 */
    private Long cellId;

    /** 单元id - 通过房间关联获取 */
    private Long unitId;

    /** 楼层id - 通过房间关联获取 */
    private Long floorId;

    /** 用户名称 - 通过租户id关联获取 */
    @Excel(name = "名称")
    @Transient
    private String username;
    /** 住户id */

    private Long userId;

    /** 手机号 - 通过租户id关联获取 */
    private String phone;
    private String userPhone;
    private String tenantName;


    /** 小区名称 */
    @Excel(name = "小区名称")
    @Transient
    private String cellName;

    /** 单元名称 */
    @Excel(name = "楼栋名称")
    @Transient
    private String unitName;

    /** 楼层名称 */
    @Excel(name = "楼层名称")
    @Transient
    private String floorName;


    /** 房间名称 */
    @Excel(name = "房间名称")
    @Transient
    private String roomName;

    /** 身份证号 - 通过租户id关联获取 */
    @Excel(name = "学工号")
    private String idCardNumber;

    @Excel(name = "人员类型", readConverterExp = "0=学生,1=教职工,2=维护人员,3=其他")
    private String relation;
    /** 开门方式 */
    @Excel(name = "开门方式", dictType = "key_type")
    private String type;

    /** 开始时间 */
    @JsonIgnore
    private String beginTime;
    
    /** 结束时间 */
    @JsonIgnore
    private String endTime;

    /** 备注信息 - 从BaseEntity映射 */
    @Excel(name = "备注")
    private String remark;

    /** 创建时间 - 从BaseEntity映射 */
    @Excel(name = "开门时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

}
